#ifndef MUSICLIST_H
#define MUSICLIST_H

#include <QVector>
#include <QList>
#include <QUrl>
#include <QSqlDatabase>
#include <QSet>
#include "music.h"

typedef QVector<Music>::Iterator Iterator;

//管理所有的歌曲对应的music对象
class MusicList
{
public:
    MusicList();

    void addMusicsByUrls(QList<QUrl>& list);

    Iterator begin();

    Iterator end();

    Iterator findMusicByMusicId(const QString&);

    void writeToDB();

    void readFromMusicListDB();

    Iterator findMusicByMusicName(const QString&);

    bool isEmpty();

private:
    QVector<Music> musicList;

    QSqlDatabase sqlite;

    QSet<QString> musicPaths;
};

#endif // MUSICLIST_H
